package com.demo2do.fms.entity.business.shipment;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

/**
 * 派车单（用于报销单、查询派车单）
 * 
 * @author Wy
 *
 */
@Entity
@Table(name = "VW_DISPATCH_ORDER")
public class DispatchOrderRecord {
    
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "assigned")
    private Long id;
    
    /** 所属公司  */
    private Long organizationId;
    
    /** 调度指令组号 */
    private String shipmentGroupId;
    
    /** 起始装卸地 */
    private String startName;
    
    /** 目的装卸地 */
    private String targetName;
    
    /** 派车单号 */
    private String dispatchOrderCode;
    
    /** 起始地名称  */
    private String startFacilityName;
    
    /** 目的地名称  */
    private String endFacilityName;
    
    /** 派车单日期 */
    private Date dispatchDate;
    
    /** 驳运车编号 */
    private Long vehicleId; 
    
    /** 驳运车名称 */
    private String vehicleName;
    
    /** 行驶公里数 */
    private BigDecimal facilityDistance;
    
    /** 默认行驶公里数 */
    private BigDecimal facilityDistanceDefault;
    
    /** 主驾驶员 */
    private String mainDriver;
    
    /** 第一副驾驶员 */
    private String firstViceDriver;
    
    /** 行驶公里数调整理由补充 */
    private String distanceAdjustRemark;
    
    /** 装载能力  */
    private Integer fullLoadNumber;
    
    /** 商品车数量 */
    private Integer actualLoadNumber;
    
     /** 主驾驶员  */
    private Long mainDriverId;
    
    /** 第一副驾驶员  */
    private Long firstViceDriverId;
    
    /** 车队名称 */
    private String teamName;
    
    /** 回单数量  */
    private Integer accomplishConfirmNumber;
    
    /** 是否回单  */
    @Column(name = "IS_ACCOMPLISH_CONFIRM")
    private Boolean accomplishConfirm;
    
    /** 是否打印报销  */
    @Column(name = "IS_EXPENSE_PRINT")
    private Boolean expensePrint;
    
    /** 打印日期 */
    @Column(name = "EXPENSE_PRINT_DATE")
    private Date expensePrintDate;
    
    /** 是否报销  */
    @Column(name = "IS_EXPENSE_REIMBURSED")
    private Boolean expenseReimbursed;
    
    /** 报销日期 */
    @Column(name = "EXPENSE_REIMBURSE_DATE")
    private Date expenseReimburseDate;
    
    /** 离开时间 */
    private Date leavingTime;
    
    /**
     * The default constructor
     */
    public DispatchOrderRecord() {
        
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @return the organizationId
     */
    public Long getOrganizationId() {
        return organizationId;
    }

    /**
     * @return the shipmentGroupId
     */
    public String getShipmentGroupId() {
        return shipmentGroupId;
    }

    /**
     * @return the startName
     */
    public String getStartName() {
        return startName;
    }

    /**
     * @return the targetName
     */
    public String getTargetName() {
        return targetName;
    }

    /**
     * @return the dispatchOrderCode
     */
    public String getDispatchOrderCode() {
        return dispatchOrderCode;
    }

    /**
     * @return the startFacilityName
     */
    public String getStartFacilityName() {
        return startFacilityName;
    }

    /**
     * @return the endFacilityName
     */
    public String getEndFacilityName() {
        return endFacilityName;
    }

    /**
     * @return the dispatchDate
     */
    public Date getDispatchDate() {
        return dispatchDate;
    }

    /**
     * @return the vehicleId
     */
    public Long getVehicleId() {
        return vehicleId;
    }

    /**
     * @return the vehicleName
     */
    public String getVehicleName() {
        return vehicleName;
    }

    /**
     * @return the facilityDistance
     */
    public BigDecimal getFacilityDistance() {
        return facilityDistance;
    }

    /**
     * @return the facilityDistanceDefault
     */
    public BigDecimal getFacilityDistanceDefault() {
        return facilityDistanceDefault;
    }

    /**
     * @return the mainDriver
     */
    public String getMainDriver() {
        return mainDriver;
    }

    /**
     * @return the firstViceDriver
     */
    public String getFirstViceDriver() {
        return firstViceDriver;
    }

    /**
     * @return the distanceAdjustRemark
     */
    public String getDistanceAdjustRemark() {
        return distanceAdjustRemark;
    }

    /**
     * @return the fullLoadNumber
     */
    public Integer getFullLoadNumber() {
        return fullLoadNumber;
    }

    /**
     * @return the actualLoadNumber
     */
    public Integer getActualLoadNumber() {
        return actualLoadNumber;
    }

    /**
     * @return the mainDriverId
     */
    public Long getMainDriverId() {
        return mainDriverId;
    }

    /**
     * @return the firstViceDriverId
     */
    public Long getFirstViceDriverId() {
        return firstViceDriverId;
    }

    /**
     * @return the teamName
     */
    public String getTeamName() {
        return teamName;
    }

    /**
     * @return the accomplishConfirmNumber
     */
    public Integer getAccomplishConfirmNumber() {
        return accomplishConfirmNumber;
    }

    /**
     * @return the accomplishConfirm
     */
    public Boolean getAccomplishConfirm() {
        return accomplishConfirm;
    }

    /**
     * @return the expensePrint
     */
    public Boolean getExpensePrint() {
        return expensePrint;
    }
    
    /**
     * @return
     */
    public Date getExpensePrintDate() {
        return expensePrintDate;
    }

    /**
     * @return the expenseReimbursed
     */
    public Boolean getExpenseReimbursed() {
        return expenseReimbursed;
    }
    
    /**
     * @return
     */
    public Date getExpenseReimburseDate() {
        return expenseReimburseDate;
    }

    /**
     * @return the leavingTime
     */
    public Date getLeavingTime() {
        return leavingTime;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @param organizationId the organizationId to set
     */
    public void setOrganizationId(Long organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * @param shipmentGroupId the shipmentGroupId to set
     */
    public void setShipmentGroupId(String shipmentGroupId) {
        this.shipmentGroupId = shipmentGroupId;
    }

    /**
     * @param startName the startName to set
     */
    public void setStartName(String startName) {
        this.startName = startName;
    }

    /**
     * @param targetName the targetName to set
     */
    public void setTargetName(String targetName) {
        this.targetName = targetName;
    }

    /**
     * @param dispatchOrderCode the dispatchOrderCode to set
     */
    public void setDispatchOrderCode(String dispatchOrderCode) {
        this.dispatchOrderCode = dispatchOrderCode;
    }

    /**
     * @param startFacilityName the startFacilityName to set
     */
    public void setStartFacilityName(String startFacilityName) {
        this.startFacilityName = startFacilityName;
    }

    /**
     * @param endFacilityName the endFacilityName to set
     */
    public void setEndFacilityName(String endFacilityName) {
        this.endFacilityName = endFacilityName;
    }

    /**
     * @param dispatchDate the dispatchDate to set
     */
    public void setDispatchDate(Date dispatchDate) {
        this.dispatchDate = dispatchDate;
    }

    /**
     * @param vehicleId the vehicleId to set
     */
    public void setVehicleId(Long vehicleId) {
        this.vehicleId = vehicleId;
    }

    /**
     * @param vehicleName the vehicleName to set
     */
    public void setVehicleName(String vehicleName) {
        this.vehicleName = vehicleName;
    }

    /**
     * @param facilityDistance the facilityDistance to set
     */
    public void setFacilityDistance(BigDecimal facilityDistance) {
        this.facilityDistance = facilityDistance;
    }

    /**
     * @param facilityDistanceDefault the facilityDistanceDefault to set
     */
    public void setFacilityDistanceDefault(BigDecimal facilityDistanceDefault) {
        this.facilityDistanceDefault = facilityDistanceDefault;
    }

    /**
     * @param mainDriver the mainDriver to set
     */
    public void setMainDriver(String mainDriver) {
        this.mainDriver = mainDriver;
    }

    /**
     * @param firstViceDriver the firstViceDriver to set
     */
    public void setFirstViceDriver(String firstViceDriver) {
        this.firstViceDriver = firstViceDriver;
    }

    /**
     * @param distanceAdjustRemark the distanceAdjustRemark to set
     */
    public void setDistanceAdjustRemark(String distanceAdjustRemark) {
        this.distanceAdjustRemark = distanceAdjustRemark;
    }

    /**
     * @param fullLoadNumber the fullLoadNumber to set
     */
    public void setFullLoadNumber(Integer fullLoadNumber) {
        this.fullLoadNumber = fullLoadNumber;
    }

    /**
     * @param actualLoadNumber the actualLoadNumber to set
     */
    public void setActualLoadNumber(Integer actualLoadNumber) {
        this.actualLoadNumber = actualLoadNumber;
    }

    /**
     * @param mainDriverId the mainDriverId to set
     */
    public void setMainDriverId(Long mainDriverId) {
        this.mainDriverId = mainDriverId;
    }

    /**
     * @param firstViceDriverId the firstViceDriverId to set
     */
    public void setFirstViceDriverId(Long firstViceDriverId) {
        this.firstViceDriverId = firstViceDriverId;
    }

    /**
     * @param teamName the teamName to set
     */
    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    /**
     * @param accomplishConfirmNumber the accomplishConfirmNumber to set
     */
    public void setAccomplishConfirmNumber(Integer accomplishConfirmNumber) {
        this.accomplishConfirmNumber = accomplishConfirmNumber;
    }

    /**
     * @param accomplishConfirm the accomplishConfirm to set
     */
    public void setAccomplishConfirm(Boolean accomplishConfirm) {
        this.accomplishConfirm = accomplishConfirm;
    }

    /**
     * @param expensePrint the expensePrint to set
     */
    public void setExpensePrint(Boolean expensePrint) {
        this.expensePrint = expensePrint;
    }
    
    /**
     * @param expensePrintDate
     */
    public void setExpensePrintDate(Date expensePrintDate) {
        this.expensePrintDate = expensePrintDate;
    }

    /**
     * @param expenseReimbursed the expenseReimbursed to set
     */
    public void setExpenseReimbursed(Boolean expenseReimbursed) {
        this.expenseReimbursed = expenseReimbursed;
    }
    
    /**
     * @param expenseReimburseDate
     */
    public void setExpenseReimburseDate(Date expenseReimburseDate) {
        this.expenseReimburseDate = expenseReimburseDate;
    }

    /**
     * @param leavingTime the leavingTime to set
     */
    public void setLeavingTime(Date leavingTime) {
        this.leavingTime = leavingTime;
    }
    
}
